The user interface of a software application distributed internationally requires several versions of its user interface to conform to local languages. The process of creating these different versions from a source version, which is typically an English language version, is called "localization." It is a rather involved process to translate the local language of an application into a different local or target language, especially while maintaining the same "look and feel" of the application. For example, it is desirable that visual resource elements maintain their same relative positions and sizes.
Localization requires more than a mere substitution of character strings in the visual resources (menus, dialog boxes, titles, toolbars, and the like) to convert from the source to a target language. For example, translated visual resources must be modified to account for varying lengths of the character strings representing a word or phrase which can change substantially between two languages. For instance, the length of text in a visual resource of an application often grows when it is translated from English to a different language. For example, the English word "Edit" becomes "Bearbeiten" in German, and "Sort Ascending" becomes "Lajittele nousevassa jarjestyksessa" in Finnish. Deviation in lengths substantially complicates the localization process.
A vast majority of the problems associated with localized products are attributed to "visual bugs." These visual bugs include such things as overlapped controls, truncated text on a control, and alignment errors. To manually check each visual resource of an application converted to a target language requires extensive resources and is costly and time consuming. Current localization tools do not currently provide for immediate testing as individual visual resources are localized. Rather, the localized application must be executed, and then a user or a testing tool manipulates the menus and commands to display the visual resources for a human tester to visually inspect each visual resource and attempt to spot the errors. Even if all visual resources are viewed, slight alignment errors are difficult to detect. Furthermore, only the localized visual resources are displayed by a localized application so a direct comparison between the source and localized visual resources is not available. In addition, truncation bugs are particularly difficult to spot because the application's tester is quite often not fluent in the target language, and therefore, may not know if a few characters are not displayed.